home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_a
/
multi.lst
< prev
next >
Wrap
File List
|
1995-04-22
|
10KB
|
276 lines
10 DIM PERSON$(200,10):POKE 16,64:POKE 53774,64
20 DEFINT A-Z
30 'THIS IS A PROGRAM DESIGNED TO
40 'CREATE A DATA BASE AND SORT,LIST
50 'AND CHANGE IT
60 GRAPHICS 17
70 FOR I=1 TO 5:PRINT #6," ":NEXT
80 PRINT #6,"WELCOME TO MULTISORT"
90 PRINT #6," ":PRINT #6," by":PRINT #6," "
100 PRINT #6," michael l. hooper"
110 FOR I=1 TO 5000:NEXT
120 GRAPHICS 0:POKE 752,1
130 ON ERROR 2730
140 PRINT "WHAT TIME IS IT?":PRINT
150 PRINT "PLEASE ENTER IN THIS FORMAT HOUR:MINUTES:SECONDS EXAMPLE = 12:38:59
160 INPUT T$:IF T$<>"" THEN TIME$=T$ ELSE TIME$="00:00:00"
170 GRAPHICS 17:POKE 16,64:POKE 53774,64
180 PRINT #6,"please choose one:" :PRINT #6," "
190 PRINT #6,"i-INITIATE NEW FILE
200 PRINT #6," "
210 PRINT #6,"r-READ FROM DISK
220 PRINT #6," "
230 PRINT #6,"t-TERMINATE PROGRAM"
240 PRINT #6," "
250 PRINT #6,"s-SORT THE LIST"
260 PRINT #6," "
270 PRINT #6,"l-LIST ALL ITEMS"
280 PRINT #6," "
290 PRINT #6,"f-FIND AN ITEM"
300 PRINT #6," "
310 PRINT #6,"a-ADD AN ITEM"
320 PRINT #6," "
330 PRINT #6,"e-ERASE AN ITEM"
340 PRINT #6," "
350 PRINT #6,"c-CHANGE AN ITEM"
360 PRINT #6," ":PRINT #6,"d-DISK DIRECTORY
370 PRINT #6,AT(10,23);TIME$
380 IF TIME$="24:00:00" THEN TIME$="00:00:00"
390 CHOICE$=INKEY$:IF CHOICE$="" THEN 370
400 GRAPHICS 0:POKE 752,1
410 IF CHOICE$="I" THEN 520
420 IF CHOICE$="R" THEN 730
430 IF CHOICE$="F" THEN 930
440 IF CHOICE$="S" THEN 1180
450 IF CHOICE$="L" THEN 1410
460 IF CHOICE$="T" THEN 1590
470 IF CHOICE$="C" THEN 1770
480 IF CHOICE$="E" THEN 2030
490 IF CHOICE$="A" THEN 2290
500 IF CHOICE$="D" THEN 2430
510 GOTO 170
520 SETCOLOR 6,13,10:SETCOLOR 5,0,0:SETCOLOR 8,13,10: ! INITIATE A NEW FILE
530 INPUT "HOW MANY FIELDS? ";N$:NUMBEROFIELDS=VAL(N$):IF NUMBEROFIELDS>10 OR NUMBEROFIELDS<1 THEN 530
540 FOR I=1 TO NUMBEROFIELDS
550 PRINT "NAME OF FIELD #";I;
560 INPUT FIELDNAME$(I)
570 IF FIELDNAME$(I)="" THEN 550
580 NEXT
590 I=1
600 PRINT :PRINT "INPUT 'DONE' TO QUIT.":PRINT
610 FOR J=1 TO NUMBEROFIELDS
620 PRINT FIELDNAME$(J);" OF ITEM #";I;
630 INPUT PERSON$(I,J)
640 IF PERSON$(I,J)="DONE" THEN 680
650 NEXT
660 I=I+1
670 GOTO 600
680 NUMBEROFPERSONNEL=I-1
690 PRINT "YOU HAVE INPUT ";NUMBEROFIELDS;" FIELDS ON ";NUMBEROFPERSONNEL;" ITEMS"
700 PRINT:PRINT "PUSH ANY KEY TO RETURN TO MENU"
710 IF INKEY$="" THEN 710
720 GOTO 170
730 SETCOLOR 6,3,10:SETCOLOR 5,0,0:SETCOLOR 8,3,10:ON ERROR GOTO 2740:! READ FROM DISK
740 PRINT "WHAT IS THE NAME OF THE FILE";:INPUT CHOICE$:CHOICE$="D:"+CHOICE$
750 OPEN #4,CHOICE$ INPUT
760 INPUT #4,NUMBEROFIELDS
770 FOR I=1 TO NUMBEROFIELDS
780 INPUT #4,FIELDNAME$(I)
790 NEXT
800 I=1
810 FOR J=1 TO NUMBEROFIELDS
820 INPUT #4,PERSON$(I,J)
830 IF PERSON$(I,J)="DONE" THEN 870
840 NEXT
850 I=I+1
860 GOTO 810
870 NUMBEROFPERSONNEL=I-1
880 PRINT :PRINT "YOU HAVE";NUMBEROFPERSONNEL;"ITEMS IN MEMORY,":PRINT "WITH";NUMBEROFIELDS;"FIELDS OF INFO EACH"
890 PRINT :PRINT "PRESS ANY KEY TO RETURN TO MENU"
900 IF INKEY$="" THEN 900
910 CLOSE #4
920 GOTO 170
930 SETCOLOR 6,4,8:SETCOLOR 5,0,0:SETCOLOR 8,4,8:! FIND AN ITEM
940 FOR I=1 TO NUMBEROFIELDS
950 PRINT I;"- ";FIELDNAME$(I)
960 NEXT
970 PRINT:INPUT "SEARCH WHICH FIELD? ";F$:FIELDKEY=VAL(F$):IF FIELDKEY<1 OR FIELDKEY>NUMBEROFIELDS THEN 970
980 INPUT "WHAT IS THE SEARCH KEY? ";KEY$
990 PRINT "OUTPUT TO SCREEN OR PRINTER (S/P)?";
1000 A$=INKEY$
1010 IF A$="S" THEN OPEN #7,"E:" OUTPUT:A=1:SETCOLOR 6,4,08:SETCOLOR 5,0,0:SETCOLOR 8,4,08:POKE 752,1:GOTO 1040
1020 IF A$="P" THEN OPEN #7,"P:" OUTPUT:A=0:GOTO 1040
1030 GOTO 1000
1040 FOR I=1 TO NUMBEROFPERSONNEL
1050 IF LEFT$(PERSON$(I,FIELDKEY),LEN(KEY$))=KEY$ THEN 1100
1060 NEXT
1070 PRINT :PRINT "WE HAVE GONE THROUGH THE ENTIRE LIST":PRINT:PRINT
1080 PRINT "DO YOU WANT TO GO THROUGH AGAIN?(Y/N) ";:CLOSE #7
1090 A$=INKEY$:IF A$="Y" THEN 940 ELSE IF A$="N" THEN 170 ELSE 1090
1100 FOR J=1 TO NUMBEROFIELDS
1110 PRINT #7,FIELDNAME$(J);"-";PERSON$(I,J)
1120 NEXT
1130 PRINT #7,STRING$(38,"="):IF A=0 THEN 1060
1140 IF A=1 THEN PRINT "PUSH ANY KEY TO CONTINUE"
1150 PRINT STRING$(38,"=")
1160 IF INKEY$="" THEN 1160
1170 GOTO 1060
1180 SETCOLOR 6,7,8:SETCOLOR 5,0,0:SETCOLOR 8,7,8:! SORT THE LIST
1190 J=NUMBEROFPERSONNEL:PRINT
1200 FOR I=1 TO NUMBEROFIELDS
1210 PRINT I,FIELDNAME$(I)
1220 NEXT
1230 PRINT
1240 PRINT "SORT BY WHICH FIELD";
1250 INPUT C$:CHOICE=VAL(C$):IF CHOICE<1 OR CHOICE>NUMBEROFIELDS THEN 1250
1260 PRINT :PRINT "SORTING"
1270 FOR I=1 TO NUMBEROFPERSONNEL-1
1280 IF PERSON$(I,CHOICE)>PERSON$(I+1,CHOICE) THEN GOSUB 1350
1290 NEXT I
1300 J=J-1:IF J>0 THEN 1260
1310 PRINT :PRINT "ALL DONE"
1320 PRINT :PRINT "PRESS ANY KEY TO RETURN TO MENU"
1330 IF INKEY$="" THEN 1330
1340 GOTO 170
1350 FOR K=1 TO NUMBEROFIELDS
1360 QAVE$=PERSON$(I,K)
1370 PERSON$(I,K)=PERSON$(I+1,K)
1380 PERSON$(I+1,K)=QAVE$
1390 NEXT K
1400 RETURN
1410 SETCOLOR 6,11,6:SETCOLOR 5,0,0:SETCOLOR 6,11,6:! LIST ALL ITEMS
1420 PRINT "OUTPUT TO SCREEN OR PRINTER (S/P)?";
1430 A$=INKEY$
1440 IF A$="S" THEN OPEN #7,"E:" OUTPUT:A=1:SETCOLOR 6,11,6:SETCOLOR 5,0,0:SETCOLOR 8,11,6:GOTO 1470
1450 IF A$="P" THEN OPEN #7,"P:" OUTPUT:A=0:GOTO 1470
1460 GOTO 1430
1470 FOR I=1 TO NUMBEROFPERSONNEL
1480 FOR J=1 TO NUMBEROFIELDS:POKE 752,1
1490 PRINT #7, FIELDNAME$(J);"-";PERSON$(I,J)
1500 NEXT J
1510 PRINT #7, STRING$(38,"="):IF A=0 THEN 1550
1520 PRINT "PRESS ANY KEY TO CONTINUE LISTING"
1530 IF INKEY$="" THEN 1530
1540 PRINT #7, STRING$(38,"=")
1550 NEXT I
1560 CLOSE #7:PRINT :PRINT "YOU HAVE GONE THROUGH THE WHOLE LIST"
1570 PRINT "DO YOU WANT TO DO IT AGAIN (Y/N)? ";
1580 A$=INKEY$:IF A$="Y" THEN 1410 ELSE IF A$="N" THEN 170 ELSE 1580
1590 SETCOLOR 8,11,6:SETCOLOR 6,11,6:SETCOLOR 5,0,0:! WRITE TO DISK
1600 PRINT "WHAT DO YOU WANT TO NAME THE FILE?":INPUT CHOICE$
1610 CHOICE$="D:"+CHOICE$
1620 OPEN #4,CHOICE$ OUTPUT
1630 PRINT #4,NUMBEROFIELDS
1640 FOR I=1 TO NUMBEROFIELDS
1650 PRINT #4,FIELDNAME$(I)
1660 NEXT I
1670 FOR I=1 TO NUMBEROFPERSONNEL+1
1680 FOR J=1 TO NUMBEROFIELDS
1690 PRINT #4,PERSON$(I,J)
1700 NEXT J
1710 NEXT I
1720 PRINT :PRINT "ALL DONE":CLOSE #4
1730 PRINT
1740 PRINT "DO YOU WANT TO GO BACK TO THE MENU?";
1750 A$=INKEY$:IF A$="Y" THEN 170 ELSE IF A$="N" THEN 1760 ELSE GOTO 1750
1760 GRAPHICS 0:PRINT "OK-Goodbye....":NEW:END
1770 SETCOLOR 6,9,8:SETCOLOR 5,0,0:SETCOLOR 8,9,8:! CHANGE AN ITEM
1780 FOR I=1 TO NUMBEROFIELDS
1790 PRINT I,FIELDNAME$(I)
1800 NEXT
1810 PRINT:PRINT "WHICH FIELD TO SEARCH";:INPUT CHOICE:IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 1810
1820 INPUT "WHAT IS THE SEARCH KEY? ";KEY$
1830 FOR I=1 TO NUMBEROFPERSONNEL
1840 IF LEFT$(PERSON$(I,CHOICE),LEN(KEY$))=KEY$ THEN 1870
1850 NEXT
1860 PRINT "WE HAVE GONE THROUGH THE ENTIRE LIST":PRINT:GOTO 2000
1870 PRINT STRING$(38,"=")
1880 FOR K=1 TO NUMBEROFIELDS
1890 PRINT FIELDNAME$(K);"-";PERSON$(I,K)
1900 NEXT
1910 PRINT :PRINT "IS THIS THE CORRECT ITEM? "
1920 A$=INKEY$:IF A$="N" THEN 1850 ELSE IF A$<>"Y" THEN 1920
1930 PRINT :FOR K=1 TO NUMBEROFIELDS
1940 PRINT K,FIELDNAME$(K)
1950 NEXT
1960 PRINT :PRINT "CHANGE WHICH FIELD";:INPUT C$:CHOICE=VAL(C$):IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 1960
1970 INPUT "WHAT IS IT TO BE CHANGED TO? ";CHOICE$
1980 PERSON$(I,CHOICE)=CHOICE$
1990 PRINT :PRINT "OK-IT IS NOW CHANGED"
2000 PRINT :PRINT "PRESS ANY KEY TO RETURN TO MENU"
2010 IF INKEY$="" THEN 2010
2020 GOTO 170
2030 SETCOLOR 5,8,10:SETCOLOR 6,0,0:! ERASE AN ITEM
2040 FOR I=1 TO NUMBEROFIELDS
2050 PRINT I,FIELDNAME$(I)
2060 NEXT
2070 PRINT
2080 PRINT "CHOOSE FROM WHICH FIELD";:INPUT C$:CHOICE=VAL(C$):IF CHOICE<0 OR CHOICE>NUMBEROFIELDS THEN 2080
2090 PRINT:PRINT "WHAT IS THE SEARCH KEY";:INPUT CHOICE$:PRINT
2100 FOR I=1 TO NUMBEROFPERSONNEL
2110 IF LEFT$(PERSON$(I,CHOICE),LEN(CHOICE$))=CHOICE$ THEN GOTO 2140
2120 NEXT
2130 PRINT:PRINT "WE HAVE GONE THROUGH THE ENTIRE LIST":GOTO 2260
2140 PRINT :FOR J=1 TO NUMBEROFIELDS
2150 PRINT FIELDNAME$(J);"-";PERSON$(I,J)
2160 NEXT
2170 PRINT STRING$(38,"=")
2180 PRINT